package event;


import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import Entities.*;
import Segments.Segment;

public class CarStop extends Event {

	/*
	 * A continuaci�n se presentan las variables de la versi�n secuencial
	 */
        
        int EMPTY = -1;
	int newEvent = -1; //verificar porque aqui tenia antes empty
	double evaluatedPosition;
	double deltaT;
	double deltaP;
	double increment;
	double arrivalPosition;
	double arrivalTime;
	double startTime;
	double PosibledeltaT;
	double PosibledeltaP;
	double PosiblearrivalPosition;
	double PosiblearrivalTime;
	Event nextEvent;
        int VERDE = 1;
	int ROJO = 0;
	int AMBAR =3;

	
	/*

	 * Fin de variables de version secuencial
	 */
	Event root;
	Segment segment;
	
        static String N=System.getProperty("line.separator");


	
	public CarStop(){

	}
	//debo recibir segment tambien
	public CarStop(Segment segment){


		this.root = segment.getRoot();
		this.segment = segment;
              

	}

	public void run() {
		

 myLogger.debug("Executing At: " + this.evTime() + " event type:  " + this.getEventType());

		//segment.agregarEvento(this.getTime()+5, 2, objectId, eventPosition+segment.getSize());


		//Escribir el evento ejecutado en un archivo

		try{
			FileOutputStream out = new FileOutputStream("c:/temp/log.txt",true);		
			
			PrintWriter miArchivo = new PrintWriter(out);
			miArchivo.write(this.objectId()+","); 
			miArchivo.write(this.evTime()+",");
			miArchivo.write(segment.getId()+",");
			miArchivo.write(this.evPosition()+",");
			miArchivo.write(this.getEventType()+",");
			
			miArchivo.println();
			miArchivo.close();
			
		}
		catch (IOException ioe){
			System.out.println("Error en la creaci�n del archivo log.txt");
		}



                Car car = (Car)objectId;
				
				
				deltaP = car.getStopDeltaP();
				
				car.setPosition(car.getPosition() + deltaP);
				
				segment.putCar(car,new Double(car.getPosition())); // hay que ponerlo para que actualize el orden el el arreglo de carros del segmento segun la posicipon
					
					
					
                                        
                                        
		

 myLogger.debug("Finishing At: " + this.evTime() + " event type:  " + this.getEventType());
		
		myStreetControllerAgent.setReady();
		
	}


    @Override
	public String toString(){
		return "CarStop";

	}

 

}
